SYNOPSIS
mixed arr[index];
int str[index];
mixed * arr[from..to];
string str[from..to];
BESCHREIBUNG
Liefert ein Element aus einem Array oder String (erste Form), oder
eine Teilmenge (zweite Form).
Die Indizes <index>, <from> und <to> sind durchnummeriert von 0 bis
strlen(<str>)-1 bzw. sizeof(<arr>)-1. Wenn ein <index> als '<wert'
geschrieben wird, wird der Wert vom Ende des Stings / Arrays her
gezaehlt. Dabei wird nummeriert von 1 bis strlen(<str>) bzw.
sizeof(<arr>). Wird <from> weggelassen, beginnt die Teilmenge mit
dem ersten Element. Wird <to> weggelassen, endet die Teilmenge mit
dem letzten Element.
In der ersten Form muss <index> innerhalb der Grenzen des Strings /
Arrays sein, sonst wird ein Laufzeitfehler (RTE) verursacht. In der
zweiten Form werden die Indizes an die Groesse des Strings / Arrays
angepasst. Wenn <from> groesser ist als <to> oder beide ausserhalb
der Groesse des Strings / Arrays liegen, wird ein leerer String ""
bzw. ein leeres Array ({}) zurueck geliefert.
Die Notation als Closure ist entsprechend:
[index] -> ({'#[, arr, index })
[<index] -> ({'#[<, arr, index })
[from..to] -> ({'#[..], arr, from, to })
[<from..to] -> ({'#[<..], arr, from, to })
[from..<to] -> ({'#[..<], arr, from, to })
[<from..<to] -> ({'#[<..<], arr, from, to })
BEISPIELE
foo = ({ 1, 2, 3, 4 }); str = "test";
foo[1] -> 1 str[1] -> 'e' == 101
foo[1..2] -> ({ 2, 3 }) str[1..2] -> "es"
foo[2..1] -> ({ }) str[2..1] -> ""
foo[0..<2] -> ({ 1, 2 }) str[0..<2] -> "tes"
foo[..<2] -> ({ 1, 2 }) str[..<2] -> "tes"
foo[<3..] -> ({ 2, 3, 4 }) str[<3..] -> "est"
foo[1] = 5 -> foo == ({ 1, 5, 3, 4 })
foo[1..2] = ({ 5, 6, 7 }) -> foo == ({ 1, 5, 6, 7, 4 })
foo[1..2] = ({ }) -> foo == ({ 1, 4 })
str[1] = 'a' -> str == "tast"
str[1..2] = "bar" -> str == "tbart"
str[1..2] = "" -> str == "tt"
GESCHICHTE
slice_array() ist die alte Form der []-Operatoren fuer Arrays,
extract() ist die alte Form der []-Operatoren fuer Strings.
BEIDE VARIANTEN SIND VERALTET, WERDEN NICHT MEHR UNTERSTUETZT UND
SOLLTEN DESHALB NICHT MEHR VERWENDET WERDEN.
Die Syntax fuer 'rueckwaerts zaehlen vom letzten Element' hat sich von
Version 3.1.J zu 3.1.K geaendert von '-1' zu '<1'. Auch ist seit dann
foo[0..-1] ein leeres Array bzw. ein leerer String.
SIEHE AUCH
member(E), sizeof(E), slice_array(E)
|